package club.mzywucai.blog.file_system.service;

import club.mzywucai.blog.file_system.pojo.domain.JsonData;
import club.mzywucai.blog.file_system.pojo.vo.FileBasicListQueryTermsVo;
import club.mzywucai.blog.file_system.pojo.vo.FileDetailVo;
import club.mzywucai.blog.file_system.pojo.vo.RecentIUploadFileVo;
import org.springframework.context.annotation.PropertySource;

import javax.servlet.http.HttpSession;
import java.util.List;

/**
 * @author mzywucai
 * @Description
 * @date 2019/2/11
 */
public interface FileInformationService {
    /**
     * @Description 获取最近上传的文件的信息（获取前20条）
     * 在这里进行了把时间Date转为 xx分钟前的操作
     * @author mzywucai
     * @time 2019-02-11
     * @see
     * @return   club.mzywucai.blog.file_system.pojo.domain.JsonData
     * @params  []
     */
    JsonData getRecentIUploadFileVoList();

    /**
     * @Description 根据fileInfo的唯一ID，获取右上面板展示的文件详情
     * 注意：这里要进行把fileURI进行加密的操作，在登录之后，进行解密的操作。
     *
     * @author mzywucai
     * @time 2019-02-11
     * @see 
     * @return   club.mzywucai.blog.file_system.pojo.domain.JsonData
     * @params  [fileInfoId]
     */
    JsonData getFileDetailVoByFileInfoId(long fileInfoId);

    /**
     * @Description 获取整个系统的文件比例分布，总和100，比例。小数点保留两位
     * @author mzywucai
     * @time 2019-02-13
     * @see 
     * @return   club.mzywucai.blog.file_system.pojo.domain.JsonData
     * @params  []
     */
    JsonData getFileRatioAllInSystem();

    /**
     * @Description 获取当前用户上传的文件比例分布，总和100，比例。小数点保留两位
     * @author mzywucai
     * @time 2019-02-13
     * @see
     * @return   club.mzywucai.blog.file_system.pojo.domain.JsonData
     * @params  []
     */
    JsonData getFileRatioAboutUser(HttpSession session);

    /**
     * @Description 获取所有的文件的列表
     * @author mzywucai
     * @time 2019-02-13
     * @see
     * @return   club.mzywucai.blog.file_system.pojo.domain.JsonData
     * @params  [fileCategoryList, orderBy, pageNum]
     */
    JsonData getFileBasicListAllInSystem(FileBasicListQueryTermsVo fileBasicListQueryTermsVo);

    /**
     * @Description 获取当前用户上传的文件的列表
     * @author mzywucai
     * @time 2019-02-13
     * @see
     * @return   club.mzywucai.blog.file_system.pojo.domain.JsonData
     * @params  [fileCategoryList, orderBy, pageNum, session]
     */
    JsonData getFileBasicListAboutUser(FileBasicListQueryTermsVo fileBasicListQueryTermsVo, HttpSession session);

    /**
     * @Description 删除文件
     * @author mzywucai
     * @time 2019-02-13
     * @see 
     * @return   club.mzywucai.blog.file_system.pojo.domain.JsonData
     * @params  []
     */
    JsonData delFile(Long fileInfoId, HttpSession session);

    /**
     * @Description 获取文档类别的节点树
     * @author mzywucai
     * @time 2019-02-13
     * @see 
     * @return   club.mzywucai.blog.file_system.pojo.domain.JsonData
     * @params  []
     */
    JsonData getFileCategoryTree();
}
